package  main.java.leetcode.editor.cn;
//2023-07-21 14:04:46
//在一个整数数组中，“峰”是大于或等于相邻整数的元素，相应地，“谷”是小于或等于相邻整数的元素。例如，在数组{5, 8, 4, 2, 3, 4, 6}中，{8
//, 6}是峰， {5, 2}是谷。现在给定一个整数数组，将该数组按峰与谷的交替顺序排序。 
//
// 示例: 
//
// 输入: [5, 3, 1, 2, 3]
//输出: [5, 1, 3, 2, 3]
// 
//
// 提示： 
//
// 
// nums.length <= 10000 
// 
// Related Topics 贪心 数组 排序 👍 56 👎 0

import java.util.Arrays;

class PeaksAndValleysLcci {
    public static void main(String[] args) {
        //创建该题目的对象方便调用
        Solution solution = new PeaksAndValleysLcci().new Solution();
        solution.wiggleSort(new int[]{1,2,3,4,5});
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public void wiggleSort(int[] nums) {
        if(nums.length<=1){
            return;
        }
        int[] copy = Arrays.copyOf(nums,nums.length);
        Arrays.sort(copy);
        int left = 0;
        int right = nums.length-1;
        int i = 0;
        while (left<=right){
            nums[i] = copy[right];
            i++;
            if(i==nums.length){
                return;
            }
            nums[i] = copy[left];
            i++;
            right--;
            left++;
        }
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
